A data storage system stores and retrieves information on behalf of one or more external client computers. A typical data storage system includes a network adapter, storage processing circuitry and a set of disk drives. The network adapter provides connectivity between the external client computers and the storage processing circuitry. The storage processing circuitry performs a variety of data storage operations (e.g., load operations, store operations, read-modify-write operations, etc.) as well as provides cache memory which enables the data storage system to optimize its operations (e.g., to provide high-speed storage, data pre-fetching, etc.). The set of disk drives provides robust data storage capacity, but in a slower and non-volatile manner.
The storage processing circuitry of some data storage systems includes multiple storage processors for greater availability and/or greater data storage throughput. In such systems, each storage processor is individually capable of performing data storage operations.
Furthermore, each storage processor is capable of processing a maximum number of active data requests concurrently. Typically, the storage processor will process several different types of data request from different applications running on the external client computers, such as different types and sizes of read and write operations. It would be advantageous to instruct the storage processors to process more of one or more types of data requests to achieve a desired performance goal. Currently, the only way to instruct the storage processor to processes certain numbers of particular data request types is to directly program the data storage system to input the certain number of the particular type of data requests to the storage processor. If the desired performance goal is not met, the system must be reprogrammed with new numbers of the particular data request types to process. This process is very time consuming and does not enable the system to adapt to changing environments and needs of the data storage system. Fixed controls, such as throttles, do not work because their impact on the data storage system environment cannot be predicted.